//
//  YYMusicPlayManger.swift
//  STMusic
//
//  Created by stoneobs on 2017/6/15.
//  Copyright © 2017年 stoneobs. All rights reserved.
////**********************播放控制单列***************************

import UIKit
import AVFoundation
enum YYMusicPlayCurrentState {
    case isPlaying //播放中
    case isPause  // 暂停中

}
class YYMusicPlayManger: NSObject {

    static var defultManger = YYMusicPlayManger();
    
    var currentSongList:YYMusicListModel = YYMusicListModel();//歌单 -包含列表
    
    //var itemList:Array<Any> = [];//播放列表
    

    var playView:STVideoPlayView?
    
    
    
    override private init() {
        super.init();
        
    }
    
    /// 获取当前播放状态
    ///
    /// - Returns: 类型
    func currentState() -> YYMusicPlayCurrentState     {
        return YYMusicPlayCurrentState.isPause;
    }
    /// 获取当前播放模型
    ///
    /// - Returns: 类型
    func currentModel() -> YYMusicModel     {
        return YYMusicModel();
    }
        //MARK:播放流程操作
    /// 暂停
    func pause() -> Void {
        self.playView?.pause();
    }
    /// 播放
    func play() -> Void {
        self.playView?.play();
    }
    /// 下一曲
    func next() -> Void {
        
    }
    /// 上一曲
    func last() -> Void {
        
    }
    
    /// 播放一个model
    func playWithModel(model:YYMusicModel) -> Void {
        
        weak var weakSelf = self;
        self.playView = STVideoPlayView.init(frame: CGRect.zero, andVideoUrl: model.resouceUrl);
        self.playView?.prepared = {
            weakSelf?.playView?.play();
        }
    }
        //MARK:歌单操作
    //按照类型会有默认歌单，喜欢歌单，收藏歌单，碎月歌单，余音歌单，等
    /// 获取所有歌单
    ///
    /// - Returns: 数组
    func getAllList() -> Array<YYMusicListModel> {
        return [];
    }
    /// 将一首歌 加入某个歌单
    func addModelToList(model:YYMusicModel,listModel:YYMusicListModel) -> Void {
        self.removeModel(model: model);
        
    }
    
    /// 增加一个歌单
    ///
    /// - Parameter name: 歌单名字
    func addOneList(name:String) -> Void {
        
    }
    /// 删除一个歌单
    ///
    /// - Parameter model: 歌单模型
    func removeOneList(model:YYMusicListModel) -> Void {
        //删除之后，将歌曲放入默认歌单
    }

    
    /// 移除一首歌
    ///
    /// - Parameters:
    ///   - model: 歌模型

    func removeModel(model:YYMusicModel) -> Void {
        //这里之后返回成功 和失败
    }
}
